package com.ruoyi.energy.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 能源报表对象 ems_energy_report
 * 
 * @author ruoyi
 * @date 2024-01-20
 */
public class EmsEnergyReport extends BaseEntity {
    
    private static final long serialVersionUID = 1L;

    /** 报表ID */
    private Long reportId;

    /** 设备ID */
    @Excel(name = "设备ID")
    private Long deviceId;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String deviceCode;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 统计日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "统计日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportDate;

    /** 报表类型（1日报 2周报 3月报 4年报） */
    @Excel(name = "报表类型", readConverterExp = "1=日报,2=周报,3=月报,4=年报")
    private String reportType;

    /** 总能耗(kWh) */
    @Excel(name = "总能耗(kWh)")
    private BigDecimal totalEnergy;

    /** 平均功率(kW) */
    @Excel(name = "平均功率(kW)")
    private BigDecimal avgPower;

    /** 最大功率(kW) */
    @Excel(name = "最大功率(kW)")
    private BigDecimal maxPower;

    /** 最小功率(kW) */
    @Excel(name = "最小功率(kW)")
    private BigDecimal minPower;

    /** 平均电压(V) */
    @Excel(name = "平均电压(V)")
    private BigDecimal avgVoltage;

    /** 平均电流(A) */
    @Excel(name = "平均电流(A)")
    private BigDecimal avgCurrent;

    /** 平均功率因数 */
    @Excel(name = "平均功率因数")
    private BigDecimal avgPowerFactor;

    /** 运行时长(小时) */
    @Excel(name = "运行时长(小时)")
    private BigDecimal runHours;

    /** 停机时长(小时) */
    @Excel(name = "停机时长(小时)")
    private BigDecimal stopHours;

    /** 故障次数 */
    @Excel(name = "故障次数")
    private Integer faultCount;

    /** 能效比 */
    @Excel(name = "能效比")
    private BigDecimal energyEfficiency;

    /** 能耗成本(元) */
    @Excel(name = "能耗成本(元)")
    private BigDecimal energyCost;

    /** 同比增长率(%) */
    @Excel(name = "同比增长率(%)")
    private BigDecimal yearOnYearGrowth;

    /** 环比增长率(%) */
    @Excel(name = "环比增长率(%)")
    private BigDecimal monthOnMonthGrowth;

    public void setReportId(Long reportId) {
        this.reportId = reportId;
    }

    public Long getReportId() {
        return reportId;
    }

    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }

    public Long getDeviceId() {
        return deviceId;
    }

    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }

    public String getDeviceCode() {
        return deviceCode;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setReportDate(Date reportDate) {
        this.reportDate = reportDate;
    }

    public Date getReportDate() {
        return reportDate;
    }

    public void setReportType(String reportType) {
        this.reportType = reportType;
    }

    public String getReportType() {
        return reportType;
    }

    public void setTotalEnergy(BigDecimal totalEnergy) {
        this.totalEnergy = totalEnergy;
    }

    public BigDecimal getTotalEnergy() {
        return totalEnergy;
    }

    public void setAvgPower(BigDecimal avgPower) {
        this.avgPower = avgPower;
    }

    public BigDecimal getAvgPower() {
        return avgPower;
    }

    public void setMaxPower(BigDecimal maxPower) {
        this.maxPower = maxPower;
    }

    public BigDecimal getMaxPower() {
        return maxPower;
    }

    public void setMinPower(BigDecimal minPower) {
        this.minPower = minPower;
    }

    public BigDecimal getMinPower() {
        return minPower;
    }

    public void setAvgVoltage(BigDecimal avgVoltage) {
        this.avgVoltage = avgVoltage;
    }

    public BigDecimal getAvgVoltage() {
        return avgVoltage;
    }

    public void setAvgCurrent(BigDecimal avgCurrent) {
        this.avgCurrent = avgCurrent;
    }

    public BigDecimal getAvgCurrent() {
        return avgCurrent;
    }

    public void setAvgPowerFactor(BigDecimal avgPowerFactor) {
        this.avgPowerFactor = avgPowerFactor;
    }

    public BigDecimal getAvgPowerFactor() {
        return avgPowerFactor;
    }

    public void setRunHours(BigDecimal runHours) {
        this.runHours = runHours;
    }

    public BigDecimal getRunHours() {
        return runHours;
    }

    public void setStopHours(BigDecimal stopHours) {
        this.stopHours = stopHours;
    }

    public BigDecimal getStopHours() {
        return stopHours;
    }

    public void setFaultCount(Integer faultCount) {
        this.faultCount = faultCount;
    }

    public Integer getFaultCount() {
        return faultCount;
    }

    public void setEnergyEfficiency(BigDecimal energyEfficiency) {
        this.energyEfficiency = energyEfficiency;
    }

    public BigDecimal getEnergyEfficiency() {
        return energyEfficiency;
    }

    public void setEnergyCost(BigDecimal energyCost) {
        this.energyCost = energyCost;
    }

    public BigDecimal getEnergyCost() {
        return energyCost;
    }

    public void setYearOnYearGrowth(BigDecimal yearOnYearGrowth) {
        this.yearOnYearGrowth = yearOnYearGrowth;
    }

    public BigDecimal getYearOnYearGrowth() {
        return yearOnYearGrowth;
    }

    public void setMonthOnMonthGrowth(BigDecimal monthOnMonthGrowth) {
        this.monthOnMonthGrowth = monthOnMonthGrowth;
    }

    public BigDecimal getMonthOnMonthGrowth() {
        return monthOnMonthGrowth;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("reportId", getReportId())
            .append("deviceId", getDeviceId())
            .append("deviceCode", getDeviceCode())
            .append("deviceName", getDeviceName())
            .append("reportDate", getReportDate())
            .append("reportType", getReportType())
            .append("totalEnergy", getTotalEnergy())
            .append("avgPower", getAvgPower())
            .append("maxPower", getMaxPower())
            .append("minPower", getMinPower())
            .append("avgVoltage", getAvgVoltage())
            .append("avgCurrent", getAvgCurrent())
            .append("avgPowerFactor", getAvgPowerFactor())
            .append("runHours", getRunHours())
            .append("stopHours", getStopHours())
            .append("faultCount", getFaultCount())
            .append("energyEfficiency", getEnergyEfficiency())
            .append("energyCost", getEnergyCost())
            .append("yearOnYearGrowth", getYearOnYearGrowth())
            .append("monthOnMonthGrowth", getMonthOnMonthGrowth())
            .append("createTime", getCreateTime())
            .toString();
    }
} 